home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / GameKit / Examples / PacMan / Player.h < prev    next >
Text File  |  1995-06-12  |  2KB  |  49 lines

  1.  
  2. // Handles moving and rendering the Pac, whether under player or demo control.
  3.  
  4. #import <gamekit/gamekit.h>
  5.  
  6. // legal directions to use as arguments to -newDirection: method
  7. // also, as bitmasks for various arrays.
  8. #define PAC_UP        0x08
  9. #define PAC_DOWN    0x04
  10. #define PAC_LEFT    0x02
  11. #define PAC_RIGHT    0x01
  12. #define PAC_STOP    0    // default; if not one of the above, we assume stopped
  13.  
  14. #define PAC_WIDTH    16    // width of a pac image in pixels (square)
  15.  
  16. // legal states the Pac can be in
  17. #define PAC_DEAD    0
  18. #define PAC_ALIVE    1
  19. #define PAC_DYING    -11    // ten steps in death animation, then fully dead
  20.  
  21.  
  22. @interface Player:GameActor
  23. {
  24.     id  maze;            // Maze
  25.     id  pacsLeft;        // PlayerUpView
  26.     id  pacs[3];            // pac images
  27.     
  28.     int    curDir;            // which way the player wants to go
  29.     int    nextDir;        // which way the player wants to go next
  30.     int pacX, pacY;        // where we're at
  31.     int state;            // alive, dead, etc.
  32.     int cycle;            // frame counter for animation
  33.     
  34.     BOOL playerStopped;    // true if player hit space bar to stop
  35. }
  36.  
  37. - init;                        // initialize the player
  38. - (BOOL)newPlayer;            // get and set up a new Pac.  Returns NO if can't
  39. - resetPlayer;                // reset all player info
  40. - (BOOL)pacAlive;            // returns YES if Pac is alive
  41. - pacDie;                    // the pac will melt
  42. - move:sender;                // Move the PacMan one animation frame
  43. - demoMove:sender;            // Move the PacMan one animation frame (demo cntl)
  44. - newDirection:(int)newDir;    // send Pac in new direction.
  45. - renderAt:(int)posx :(int)posy move:(BOOL)moveOk;    // draw pac
  46.         // you should lock focus on view that gets the Pac first.
  47.  
  48. @end
  49.